﻿using System;

namespace Black.SurfaceToolkit.Controls
{
    /// <summary>
    /// Représente un mode de Fling Out.
    /// </summary>
    [Flags]
    public enum FlingOutMode: int
    {
        /// <summary>
        /// Le Fling Out n'est jamais possible.
        /// </summary>
        None = 0,
        /// <summary>
        /// Le Fling Out est possible à droite.
        /// </summary>
        Right = 1,
        /// <summary>
        /// Le Fling Out est possible à gauche.
        /// </summary>
        Left = 2,
        /// <summary>
        /// Le Fling Out est possible en haut.
        /// </summary>
        Up = 4,
        /// <summary>
        /// Le Fling Out est possible en bas.
        /// </summary>
        Down = 8,
        /// <summary>
        /// Le Fling Out est possible sur tous les bords (gauche, haut, droite et bas).
        /// </summary>
        All = Right | Left | Up | Down,
        /// <summary>
        /// Le Fling Out est impossible en bas. 
        /// </summary>
        NoDown = Right | Left | Up,
        /// <summary>
        /// Le Fling Out est impossible en haut.
        /// </summary>
        NoUp = Right | Left | Down,
        /// <summary>
        /// Le Fling Out est impossible à gauche.
        /// </summary>
        NoLeft = Right | Up | Down,
        /// <summary>
        /// Le Fling Out est impossible à droite.
        /// </summary>
        NoRight = Left | Up | Down,
        /// <summary>
        /// Le Fling Out est possible sur les coté (gauche et droite).
        /// </summary>
        Horizontal = Right | Left,
        /// <summary>
        /// Le Fling Out est possible en haut et en bas.
        /// </summary>
        Vertical = Up | Down
    }

    /// <summary>
    /// Représente un mode de redimensionnement.
    /// </summary>
    public enum SizeTransformMode : byte
    {
        /// <summary>
        /// Mode de redimensionnement continue.
        /// </summary>
        Continue = 0x0000,
        /// <summary>
        /// Mode de redimensionnement centré.
        /// </summary>
        Centered = 0x0001
    }
}
